import Request from "./Request";
import GameRpc from "./GameRpc";
/**
 * @brief  报文编号: P100001, 报文名称: 地图管理
 * @date   2023.11.13
 * @param  :
 * 名称         | 类型     | 描述
 * -------------|----------|--------------------
 * oper         | string   | 操作类型
     goNorth     返回标准地图窗口向北移动一格的数据
     goEast      返回标准地图窗口向东移动一格的数据
     goWest      返回标准地图窗口向西移动一格的数据
     goSouth     返回标准地图窗口向南移动一格的数据
     scrollEast  返回标准地图窗口向东移动七格的数据
     scrollWest  返回标准地图窗口向西移动七格的数据
     scrollSouth 返回标准地图窗口向南移动七格的数据
     scrollNorth 返回标准地图窗口向北移动七格的数据
     goZone      返回指定中心点的标准地图数据
     goHome      返回以主村为中心点的标准地图数据
     bigmap      返回指定中心点的大地图数据(13*13)
     move        迁移主村到标准地图上新的地址 - 这是较为特殊的功能
 * d            | int      | 指定跳转地址，获取新的窗口数据
 * x            | int      | 采用[x,y]组合坐标指定跳转坐标，获取新的窗口数据，优先级低于d
 * y            | int      | 采用[x,y]组合坐标指定跳转坐标，获取新的窗口数据，优先级低于d
 * newdid       | int      | 指定新的村庄作为当前视角
 *
 * @return
 * 名称         | 类型     | 描述
 * -------------|----------|----------------------
 * code         | int      | 返回码
 * data         | array    | 地图视窗网格数组(标准地图7*7,中心点[3,3], 大地图13*13, 中心点[6,6])
 * data.typeId  | int      | 领地类型
 * data.zoneId  | int      | 领地唯一编号，可通过该坐标计算X、Y、field
 * data.people  | int      | 领地人口
 * data.zoneName| string   | 领地名称
 * data.uid     | int      | 归属领主编号
 * data.openid  | string   | 归属领主统一编码
 * data.owner   | string   | 归属领主名称
 * data.allyName| string   | 归属联盟编号
 * data.aId     | int      | 归属联盟名称
 * data.field   | int      | 领地归属区域编号(1~81)
 */


 class MapApi {
    private control:string = 'P100001'
    private func:string = 'Execute'

    // public async goHome() {
    //     return await Request.fetching({
    //         control: this.control,
    //         func: this.func,
    //         params: {
    //             oper: 'goHome'
    //         }
    //     });

       
    // }

    public async move(param:any = {}) {
        return await GameRpc.fetching({
            func: this.control + '.' + this.func,
            params: {
                oper: 'move',
                ...param
            }
        })
    }


    public async goHome(param:any = {}) {
        return await GameRpc.fetching({
            func: this.control + '.' + this.func,
            params: {
                oper: 'goHome',
                ...param
            }
        })
    }

    public async goZone(param:any = {}){
        return await GameRpc.fetching({
            func: this.control + '.' + this.func,
            params: {
                oper: 'goZone',
                ...param
            }
        })
    }

    public async bigmap(param:any = {}){
       
        return await GameRpc.fetching({
            func: this.control + '.' + this.func,
            params: {
                oper: 'bigmap',
                ...param
            }
        })
    }
}

export default new MapApi()


